x86: Check for MWAIT in CPUID before using it in ACPI idle code.
authorKeir Fraser <keir@xen.org>
Mon, 22 Nov 2010 19:13:00 +0000 (19:13 +0000)
committerKeir Fraser <keir@xen.org>
Mon, 22 Nov 2010 19:13:00 +0000 (19:13 +0000)
Signed-off-by: Keir Fraser <keir@xen.org>
xen/arch/x86/acpi/cpu_idle.c

index a4ebbb52e7f2a5d251b35ef88e5c3abf21c41cc2..46febb0e0d36b5f810dbdd453fc344e88487c7d7 100644 (file)
@@ -841,7 +841,8 @@ static void set_cx(
     {
     case ACPI_ADR_SPACE_FIXED_HARDWARE:
         if ( xen_cx->reg.bit_width == VENDOR_INTEL &&
-             xen_cx->reg.bit_offset == NATIVE_CSTATE_BEYOND_HALT )
+             xen_cx->reg.bit_offset == NATIVE_CSTATE_BEYOND_HALT &&
+             boot_cpu_has(X86_FEATURE_MWAIT) )
             cx->entry_method = ACPI_CSTATE_EM_FFH;
         else
             cx->entry_method = ACPI_CSTATE_EM_HALT;